package auth

import (
	"time"
)

// OperationLog 操作日志模型
type OperationLog struct {
	ID         int64     `gorm:"primaryKey" json:"id"`
	UserID     int64     `gorm:"not null" json:"user_id"`     // 用户ID
	Username   string    `gorm:"size:100" json:"username"`    // 用户名
	IP         string    `gorm:"size:45" json:"ip"`           // IP地址
	Method     string    `gorm:"size:10" json:"method"`       // 请求方法
	Path       string    `gorm:"size:255" json:"path"`        // 请求路径
	UserAgent  string    `gorm:"size:500" json:"user_agent"`  // 用户代理
	StatusCode int       `gorm:"not null" json:"status_code"` // 状态码
	Latency    int64     `gorm:"not null" json:"latency"`     // 延迟时间(毫秒)
	RespData   string    `gorm:"type:text" json:"resp_data"`  // 响应数据
	CreatedAt  time.Time `json:"created_at"`                  // 创建时间
}

// TableName operation_log
func (ol *OperationLog) TableName() string {
	return "operation_log"
}
